.calendar {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: aliceblue;
}
.calendar .calendar-title {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  padding-bottom: 1rem;
  font-size: larger;
}
.calendar .calendar-content {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-gap: 0.1rem;
  padding-bottom: 0.1rem;
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
  cursor: pointer;
}
.calendar .calendar-month-switch {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  width: 24px;
  user-select: none;
  cursor: pointer;
}
.calendar .calendar-month {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
}
.calendar-month-switch:hover {
  background-color: #eee;
}
.calendar-week {
  display: flex;
  align-items: center;
  justify-content: center;
}
.calendar-day {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 2.5;
  border: 1px solid #ccc;
  font-size: larger;
  cursor: pointer;
}
.calendar-day:hover {
  background-color: #eee;
}
.active-day {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 2.5;
  border: 1px solid #ccc;
  font-size: larger;
  cursor: pointer;
  background-color: aquamarine;
}
